There are many specialized forms of computing devices such as, for example, smartphones, electronic book readers, tablet computers, video game consoles, and so on. Because of the physical differences among such devices, applications may differ from device to device. Even within a device category such as smartphones, different models of smartphones may have different display and input features. Developers may have difficulties testing applications for such devices. Actual use by end users is an ideal way to identify application defects, but it is difficult to distribute applications and application updates to end users.